home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / comm / irc / amirsay.lha / AmIRSay / mod.e < prev    next >
Text File  |  2002-02-11  |  3KB  |  149 lines

  1. OPT MODULE
  2. OPT PREPROCESS
  3.  
  4. MODULE 'dos/datetime','dos/dos',
  5.        '*loc','tools/file','b/bui',
  6.        'b/update'
  7.  
  8. EXPORT OBJECT lvo; ob1,ob2 ;ENDOBJECT
  9. EXPORT OBJECT lv1; o ;ENDOBJECT
  10.  
  11. EXPORT ENUM ID_ABOUT=25,ID_ABOUTMUI
  12.  
  13. EXPORT DEF locReplace:PTR TO CHAR,locWith:PTR TO CHAR,locName:PTR TO CHAR,locVoice:PTR TO CHAR
  14.  
  15. EXPORT PROC news(s); DEF ns; ns:=String(StrLen(s)); StrCopy(ns,s); ENDPROC ns
  16.  
  17. EXPORT PROC findconfig(str,cn,def); DEF sp,ep,res
  18. sp:=InStr(str,cn)
  19. IF sp=-1 THEN RETURN def
  20. sp:=sp+StrLen(cn)
  21. ep:=InStr(str,' ',sp); IF ep=-1 THEN ep:=StrLen(str)
  22. res:=String(ep-sp)
  23. MidStr(res,str,sp,ep-sp)
  24. ENDPROC res
  25.  
  26. EXPORT PROC newPrefs(prefs,vern,deftest); DEF c,o
  27. IF c:=Open(prefs,NEWFILE)
  28. o:=SetStdOut(c)
  29. WriteF('\s\n',dateinfoline(vern))
  30. WriteF('-l1 -d1 -p0 -a0 -s1\n')
  31. WriteF('\s\n',deftest)
  32. WriteF('[NMLTXT]\n')
  33. WriteF('brb¿b right bak\n')
  34. WriteF('ic¿i see\n')
  35. WriteF('lol¿laughs outloud\n')
  36. WriteF('oic¿oh i see\n')
  37. WriteF('pc¿pile of crap\n')
  38. WriteF('[BLANKS]\n')
  39. WriteF('*\n')
  40. WriteF('<\n')
  41. WriteF('>\n')
  42. WriteF('@\n')
  43. WriteF('^\n')
  44. WriteF('[VOICES]\n')
  45. WriteF('Default¿-m -p121 -s261\n')
  46. WriteF('Girl¿-f -p270 -s200\n')
  47. WriteF('Man¿-m -p120 -s200\n')
  48. WriteF('[PRVMSG]\n')
  49. WriteF('PING\n')
  50. WriteF('SOUND\n')
  51. WriteF('[ANYTXT]\n')
  52. WriteF('st lois¿saint lois\n')
  53. WriteF('[CHANLS]\n')
  54. WriteF('#Noisy\n')
  55.  
  56. SetStdOut(o)
  57. Close(c)
  58. ENDIF
  59. ENDPROC
  60.  
  61. EXPORT PROC dispRWFunc(arr:PTR TO LONG,co=0:PTR TO lvo)
  62.   IF co; arr[]++ := co.ob1; arr[] := co.ob2
  63.   ELSE
  64.   arr[]++ := locReplace
  65.   arr[]   := locWith
  66.   ENDIF
  67. ENDPROC
  68.  
  69. EXPORT PROC disp1Func(arr:PTR TO LONG,l1=0:PTR TO lv1)
  70.   IF l1; arr[] := l1.o
  71.   ENDIF
  72. ENDPROC
  73.  
  74. EXPORT PROC dispVFunc(arr:PTR TO LONG,co=0:PTR TO lvo)
  75.   IF co; arr[]++ := co.ob1; arr[] := co.ob2
  76.   ELSE
  77.   arr[]++ := locName
  78.   arr[]   := locVoice
  79.   ENDIF
  80. ENDPROC
  81.  
  82. EXPORT PROC cmpFunc(s1:PTR TO lv1,s2:PTR TO lv1) IS OstrCmp(s2.o,s1.o)
  83. EXPORT PROC cmp2Func(s1:PTR TO lvo,s2:PTR TO lvo) IS OstrCmp(s2.ob1,s1.ob1)
  84.  
  85. EXPORT PROC uStrCmp(s1,s2) IS OstrCmp(s2,s1)
  86.  
  87. EXPORT PROC dateinfoline(vern);
  88. DEF dt:datetime,ds:PTR TO datestamp,line, day[50]:ARRAY,date[50]:ARRAY,time[50]:ARRAY
  89. line:=String(100)
  90.  
  91.   ds:=DateStamp(dt.stamp)
  92.  
  93.   dt.format:=FORMAT_DOS
  94.   dt.flags:=DTF_FUTURE
  95.   dt.strday:=day
  96.   dt.strdate:=date
  97.   dt.strtime:=time
  98.  
  99.   IF DateToStr(dt)
  100. StringF(line,'; Prefs for AmIRSay \s Saved \s (\s)',vern,date,time)
  101.   ENDIF
  102. ENDPROC line
  103.  
  104. EXPORT PROC buildacclist(noaccent); DEF m,l,n,list,x,accl,str[256]:STRING
  105. IF FileLength('locale:accents')=0
  106. StringF(str,'echo >t:acclist "\e1\eb\s"\nlist locale:accents/#?.accent lformat %m >>t:acclist',noaccent)
  107. Execute(str,0,0)
  108. m,l:=readfile('t:acclist',"\n"); n:=countstrings(m,l)
  109. list:=stringsinfile(m,l,n)
  110. accl:=List(n+1)
  111. FOR x:=0 TO n-1 DO ListAdd(accl,[news(ListItem(list,x))])
  112. ListAdd(accl,[0])
  113. DeleteFile('t:acclist')
  114. freefile(m)
  115. ELSE
  116. accl:=List(1); ListAdd(accl,[news(noaccent)])
  117. ENDIF
  118.  
  119. ENDPROC accl
  120.  
  121. EXPORT PROC reps(st,rep,with); DEF ps,rt,ts,v
  122. ps:=0 ; v:=0
  123. WHILE (ps:=InStr(st,rep,ps))<>-1 DO (v++) AND (ps++)
  124.  
  125. rt:=String(StrLen(st)+(v*StrLen(with)))
  126. ts:=String(StrMax(rt))
  127. StrCopy(rt,st)
  128.  
  129. ps:=0
  130.  WHILE ps>=0
  131.  ps:=InStr(rt,rep,ps)
  132.   IF ps<>-1
  133.   StrCopy(ts,rt,ps)
  134.   StrAdd(ts,with)
  135.   MidStr(rt,rt,ps+StrLen(rep))
  136.   StringF(rt,'\s\s',ts,rt)
  137.   ps:=ps+StrLen(with)
  138.   ELSE
  139.   ps:=-5
  140.   ENDIF
  141.  ENDWHILE
  142.  
  143. ENDPROC rt
  144.  
  145. EXPORT PROC uc(word) IS NEW[word[InStr(word,'_')+1]]:CHAR
  146. EXPORT PROC lower(s); DEF ns; ns:=news(s); LowerStr(ns); ENDPROC ns
  147.  
  148.  
  149.